<?php

class My_Model_Haslarz
{
    /**
     * Metoda generuje losowy ciąg znaków: samogłoski i spółgłoski na zmianę
     * Dodatkowo dodaje również liczby, jesli $bAlfanumeryczne jest true.
     */
    public static function generujHaslo( $iIloscZnakow = 10, $bAlfanumeryczne = true )
    {
        $aSamogloski = array( 'a', 'e', 'i', 'o', 'u', 'y' );
        $aSpolgloski = array( 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'x', 'y', 'z', 'w' );
        $sHaslo = null;

        if( $bAlfanumeryczne )
        {
            for( $i = 0; $i < $iIloscZnakow; $i += 3 )
            {
                $sHaslo .= $aSpolgloski[rand(0,18)];
                $sHaslo .= $aSamogloski[rand(0,5)];
                $sHaslo .= rand(0,9);
            }
        }
        else
        {
            for( $i = 0; $i < $iIloscZnakow; $i += 2 )
            {
                $sHaslo .= $aSpolgloski[rand(0,18)];
                $sHaslo .= $aSamogloski[rand(0,5)];
            }
        }

        //powiekszanie i przepisywanie odpowiedniej ilosci znakow
        $sHasloZwracane = null;

        for( $i = 0; $i < $iIloscZnakow; $i++ )
        {
            if( rand(0,1) )
            {
                $sHaslo[$i] = strtoupper( $sHaslo[$i] );
            }
            $sHasloZwracane .= $sHaslo[$i];
        }

        return $sHasloZwracane;
    }

    /**
     * Metoda generuj hasz z zadanego ciągu
     */
    public static function generujHasz( $sCiag )
    {
        return sha1( $sCiag );
    }

    public static function generujHash( $sCiag )
    {
        return self::generujHasz( $sCiag );
    }

    /**
     * Generowanie salta.
     */
    public static function generujSalt()
    {
        return self::generujHash( self::generujHaslo( 100 ) );
    }
}

?>